package ar.uade.distribuidas.tpo.dba.hbt;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateUtil {

	private static final SessionFactory sessionFactory;
	static {
		try {
			AnnotationConfiguration config = new AnnotationConfiguration();
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Cliente.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Proveedor.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Rodamiento.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.SolicitudDeCotizacion.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ItemSolicitudDeCotizacion.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Cotizacion.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ItemCotizacion.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Stock.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Financiacion.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.CondicionDeVenta.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Contado.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Financiacion.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ItemListaRodamiento.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ListaPrecio.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ItemListaPrecio.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.OrdenDeCompra.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.OrdenDePedido.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ItemPedido.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Factura.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ItemFactura.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.Remito.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.RemitoCPE.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ItemRemito.class);
			config.addAnnotatedClass(ar.uade.distribuidas.tpo.dba.dominio.ItemRemitoCPE.class);

			sessionFactory = config.buildSessionFactory();
		} catch (Throwable ex) {
			System.err.println("Initial SessionFactory creation failed." + ex);
			throw new ExceptionInInitializerError(ex);
		}
	}

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}

}
